//
//  SEGIAnalyticsManager.h
//  test
//
//  Created by 刘山 on 2017/11/28.
//  Copyright © 2017年 刘山. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/*
 埋点接口地址：http://192.168.1.11:19001/index.php?s=/25&page_id=959
 */

#pragma mark - 4.6.0 版本增加编码
static NSString *SEGEventCodeSHR_SYSTEM_REC = @"SHR_SYSTEM_REC";/*事件编码：纷享系统推荐*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeSHR_SIDE_ADS = @"SHR_SIDE_ADS";/*事件编码：纷享侧滑位广告位*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeSHR_SIDE_TALK_SQ = @"SHR_SIDE_TALK_SQ";/*事件编码：纷享侧滑位聊聊广场*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeSHR_PT_NB = @"SHR_PT_NB";/*事件编码：纷享邻里头条*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_ATT_UP = @"PGC_ATT_UP";/*事件编码：PGC态度模式顶*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_ATT_DOWN = @"PGC_ATT_DOWN";/*事件编码：PGC态度模式踩*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_ATT_LEFT = @"PGC_ATT_LEFT";/*事件编码：PGC态度模式左滑*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_ATT_RIGHT = @"PGC_ATT_RIGHT";/*事件编码：PGC态度模式右滑*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_ATT_BTN = @"PGC_ATT_BTN";/*事件编码：PGC态度模式按钮*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_BTM_REPLY = @"PGC_BTM_REPLY";/*事件编码：PGC底部评论按钮*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeNB_MKT_TAB = @"NB_MKT_TAB";/*事件编码：邻里圈集市tab*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeNB_THR_BTN = @"NB_THR_BTN";/*事件编码：邻里圈穿越按钮*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeNB_TT_TAB = @"NB_TT_TAB";/*事件编码：邻里圈话题标签*/ /*自定义参数：小区id、小区名称*/

#pragma mark - v4.5.0 版本增加编码
static NSString *SEGEventCodeBTM_REF = @"BTM_REF";/*事件编码：纷享底部刷新*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_LST_SEE = @"PGC_LST_SEE";/*事件编码：PGC上次看到这里*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodePGC_BTM = @"PGC_BTM";/*事件编码：PGC到底了*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeMAN_REF = @"MAN_REF";/*事件编码：手动下拉刷新*/ /*自定义参数：小区id、小区名称*/

#pragma mark - 4.3.9 版本增加编码
static NSString *SEGEventCodeRG = @"RG";/*事件编码：注册*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeCLK_AD = @"CLK_AD";/*事件编码：点击广告*/ /*自定义参数：id、名称、小区id、小区名称、版块、顺序号(不传)*/
static NSString *SEGEventCodeCLK_ACT = @"CLK_ACT";/*事件编码：点击活动*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeCLK_TITLE = @"CLK_TITLE";/*事件编码：点击话题*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeCLK_ART = @"CLK_ART";/*事件编码：点击日报*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeCLK_MKT = @"CLK_MKT";/*事件编码：点击集市*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeCLK_HELP = @"CLK_HELP";/*事件编码：点击帮帮*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeCLK_MALL = @"CLK_MALL";/*事件编码：点击商城*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeATD_ACT = @"ATD_ACT";/*事件编码：参与活动*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeATD_TITLE = @"ATD_TITLE";/*事件编码：参与话题*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeLIKE_ACT = @"LIKE_ACT";/*事件编码：点赞活动*/ /*自定义参数：id、名称、小区id、小区名称、是否留言点赞*/
static NSString *SEGEventCodeLIKE_TITLE = @"LIKE_TITLE";/*事件编码：点赞话题*/ /*自定义参数：id、名称、小区id、小区名称、是否留言点赞*/
static NSString *SEGEventCodeLIKE_ART = @"LIKE_ART";/*事件编码：点赞日报*/ /*自定义参数：id、名称、小区id、小区名称、是否留言点赞*/
static NSString *SEGEventCodeLIKE_MKT = @"LIKE_MKT";/*事件编码：点赞集市*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeLIKE_HELP = @"LIKE_HELP";/*事件编码：点赞帮帮*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeSHARE_ACT = @"SHARE_ACT";/*事件编码：分享活动*/ /*自定义参数：id、名称、小区id、小区名称、分享渠道*/
static NSString *SEGEventCodeSHARE_ART = @"SHARE_ART";/*事件编码：分享日报*/ /*自定义参数：id、名称、小区id、小区名称、分享渠道*/
static NSString *SEGEventCodeSHARE_TITLE = @"SHARE_TITLE";/*事件编码：分享话题*/ /*自定义参数：id、名称、小区id、小区名称、分享渠道*/
static NSString *SEGEventCodeSHARE_MKT = @"SHARE_MKT";/*事件编码：分享话题*/ /*自定义参数：id、名称、小区id、小区名称、版块、分享渠道*/
static NSString *SEGEventCodeSHARE_HELP = @"SHARE_HELP";/*事件编码：分享话题*/ /*自定义参数：id、名称、小区id、小区名称、版块、分享渠道*/
static NSString *SEGEventCodeREPLY_ACT = @"REPLY_ACT";/*事件编码：回复活动*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeREPLY_TITLE = @"REPLY_TITLE";/*事件编码：回复话题*/ /*自定义参数：id、名称、小区id、小区名称、是否留言评论*/
static NSString *SEGEventCodeREPLY_ART = @"REPLY_ART";/*事件编码：回复日报*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodeREPLY_MKT = @"REPLY_MKT";/*事件编码：回复集市*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeREPLY_HELP = @"REPLY_HELP";/*事件编码：回复帮帮*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeCOL_ART = @"COL_ART";/*事件编码：收藏日报*/ /*自定义参数：id、名称、小区id、小区名称*/
static NSString *SEGEventCodePUB_MKT = @"PUB_MKT";/*事件编码：发布集市*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodePUB_HELP = @"PUB_HELP";/*事件编码：发布帮帮*/ /*自定义参数：id、名称、小区id、小区名称、版块*/
static NSString *SEGEventCodeNB_RECOMMEND = @"NB_RECOMMEND";/*事件编码：邻里圈每日精选*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeOP = @"OP";/*事件编码：开门*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeOP_TCT_AD = @"OP_TCT_AD";/*事件编码：开门腾讯广告SDK*/ /*自定义参数：小区id、小区名称*/
static NSString *SEGEventCodeUNknow2 = @"";/*事件编码：分享邻里圈*/ /*自定义参数：id、名称、小区id、小区名称、版块*/

@interface SEGIAnalyticsConfig : NSObject
@property (nonatomic, copy) NSString *userId;//用户的唯一标识
@property (nonatomic, copy) NSString *userName;//用户的名称
@property (nonatomic, copy) NSString *age;//用户年龄
@property (nonatomic, copy) NSString *sex;//用户性别（1、男 2、女）
@property (nonatomic, copy) NSString *degree;//用户学历
@property (nonatomic, copy) NSString *occupation;//用户职业
@property (nonatomic, copy) NSString *communityID;//小区ID
@property (nonatomic, copy) NSString *communityName;//小区名称

//@property (nonatomic, copy) NSString *projectId;//事件 id
//@property (nonatomic, copy) NSString *projectName;//事件 名称
//@property (nonatomic, copy) NSString *plate;//事件 版块
//@property (nonatomic, copy) NSString *sortNumber;//事件 顺序号
//@property (nonatomic, copy) NSString *isPraise;//事件 是否留言点赞
//@property (nonatomic, copy) NSString *isComment;//事件 是否留言评论
//@property (nonatomic, copy) NSString *shareChannel;//事件 分享渠道
@end

@interface SEGIAnalyticsManager : NSObject
/**
 设置是否开启行为分析功能，默认不开启
 */
@property (nonatomic, assign) BOOL openAnalytics;

@property (nonatomic, copy) NSString *sscode;
@property (nonatomic, copy) NSString *lastPage;

+ (instancetype)sharedAnalyticsManager;
-(void)segEvetRegister;
/**
 * 初始化统计模块
 * @author Sam
 * @param configure  外部参数
 */
- (void) segStartWithConfigure:(SEGIAnalyticsConfig *)configure;

/**
 * 时设定log发送间隔
 * @author Sam
 * @param second  发送的log的时间间隔，最小为90秒
 */
- (void)segLogSendInterval:(CGFloat)second;

/**
 * 统计进入的页面
 * 使用方法：必须配对调用segBeginLogPageView:和segEndLogPageView:两个函数来完成自动统计，
 * 若只调用某一个函数不会生成有效数据。
 * @author Sam
 * @param pageName  页面的名称
 */
- (void)segBeginLogPageView:(NSString *)pageName;

/**
 * 统计退出的页面
 * 使用方法：必须配对调用segBeginLogPageView:和segEndLogPageView:两个函数来完成自动统计，
 * 若只调用某一个函数不会生成有效数据。
 * @author Sam
 * @param pageName  页面的名称
 */
- (void)segEndLogPageView:(NSString *)pageName;

/**
 * 事件统计
 * @author Sam
 * @param eventId  事件对应的ID
 */
-(void)segEvent:(NSString *)eventId;

/**
 * 事件统计
 * @author Sam
 * @param eventId  事件对应的ID
 * @param attributes  业务属性字典
 */
-(void)segEvent:(NSString *)eventId attributes:(NSDictionary *)attributes;

/**
 * 统计报错
 * @author Sam
 * @param stacktrace  错误堆栈信息
 * @param digest  错误摘要(错误的第一行)
 */
-(void)segLogError:(NSString *)stacktrace digest:(NSString*)digest;

/**
 * 是否打开日志
 * @author Sam
 */
- (void)setSegLogEnabled:(BOOL)value;

/**
 * 事件埋点
 * @author Wendy
 * @param event  事件名称
 * @param values  参数数组，按指定顺序排列
 */
+ (void)segAnalyticsEvent:(NSString *)event values:(NSArray <NSString *>*)values;
@end
